package gebzebelediye_server;

import java.io.*;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Properties;

public class Gebzebelediye_server_1 {

    static ServerSocket socket;
    static int port;
    static boolean baglanti;
    static Socket s;
    static int max_kuyruk;

    public static void main(String[] args) {

        Properties prop = new Properties();
        String fileName = Parametre.SERVER_CONFIG_FILE_NAME;
        try {
            InputStream is = new FileInputStream(fileName);
            prop.load(is);
        } catch (IOException e) {
            System.out.println("Dosya yuklerken hata olustu: " + e);
            System.out.println("Sistemi yeniden baslatin...");
            System.exit(0);
        }
        try {

            port = Integer.parseInt(prop.getProperty("port_no"));
        } catch (NumberFormatException e) {
            System.out.println("port numarası hatalı okundu.:" + e.getMessage());
            System.out.println("sistemi yeniden baslatin...");
            System.exit(0);
        }
        try {

            max_kuyruk = Integer.parseInt(prop.getProperty("kuyruk_boyutu"));
        } catch (NumberFormatException e) {
            System.out.println("Serverin client için kuyruk boyutu okunamadi: " + e.getMessage());
            max_kuyruk=50;
        }
        
        baglanti = Boolean.parseBoolean(prop.getProperty("baslasin_mi"));

        try {
            socket = new ServerSocket(port);
            System.out.println("Sunucu bilgisi: " + InetAddress.getLocalHost() + " Acik olan port numarasi: " + port + " Max kuyruk boyutu: " + max_kuyruk);
            System.out.println("Baglanti bekleniyor");
            while (baglanti) {
                if (gebzebelediye_server.ClientHandler.sockets.size() < max_kuyruk) {
                    s = socket.accept();
                    (new Thread(new ClientHandler(s))).start();
                }
            }


        } catch (IOException e) {
            System.out.println("Soket acilamadi. ");


        }
    }
}